Transmission Control Protocol, TCP, is the most dominant protocol used in computer networking and on the Internet. TCP is a connection-oriented protocol, where devices at the end points, nodes, establish a connection before any data is sent.
In a connection establishment phase, or call set up phase, control data is passed between the nodes to establish a connection. The TCP protocol uses a three way handshake protocol to synchronize and to establish a TCP connection between two nodes. The TCP connection is initiated by a source node sending a synchronization, SYN, packet toward a destination node. The destination node acknowledges receipt of the SYN packet with a SYN-ACK packet sent toward the source node. Upon receipt of the SYN-ACK packet from the destination node, the source node responds with an acknowledgement, ACK, packet thereby concluding the establishment phase. During this 3-way handshake the hosts negotiate the connection settings.
Once the connection is set up, the speed of the data transmission is controlled by three factors: the rate at which the source is willing to send data, controlled by the congestion control algorithm; the TCP window space advertised by the destination; and the rate at which data appears to be getting delivered to the destination as determined by the ACK packets received at the source from the destination.
Multipath TCP, MPTCP, allows a data connection or session to use multiple paths to maximize resource usage and increase redundancy. The redundancy offered by MPTCP enables increased TCP throughput. MPTCP has one main TCP flow and multiple TCP subflows and is capable of distributing load on all interfaces. As the multiplexing of different connections is on TCP level it allows separate congestion control for each subflow.
MPTCP is particularly useful in the context of a heterogeneous wireless network using both Wi-Fi and a mobile network as a typical use case. In addition to the gains in throughput, subflows may be added or dropped as the user moves in or out of coverage without disrupting the end-to-end MPTCP connection. The subflows can also be pre-established while the user is in the coverage of multiple accesses, and the usage of the different subflows can be activated while the user moves between different accesses. MPTCP is currently under standardization process within IETF (https://datatracker.ietf.org/wg/mptcp/).
Some benefits of MPTCP include:                It allows a single data-connection to use several interfaces simultaneously increasing the throughput.        It allows failover from one interface to another (e.g. in the case of mobile client moving between 3GPP and Wi-Fi)        It increases the bandwidth due to resource pooling.        It is backwards compatible i.e. it falls back to TCP as needed (e.g. in the case when the other side doesn't support MPTCP).        It is transparent to the applications. i.e., the applications benefit from MPTCP without any code changes as they use a standard socket API        
The main scenario that MPTCP is designed for, is the case when at least one of the communicating parties are associated with multiple interfaces and IP addresses making it possible to route the data through different paths in the network using these different IP addresses.
The MPTCP specification also supports MPTCP on a shared IP stack, connection and address using the same IP address at both ends. However, whilst providing support for aggregation of multiple network paths in a single IP case in the MPTCP specification, mechanisms for enabling such aggregation is lacking in the specification.